package com.cleaningcloud.cld.service;

import com.cleaningcloud.cld.domain.CldPayConfirm;
import com.cleaningcloud.cld.domain.dto.CldPayConfirmDto;
import com.cleaningcloud.cld.domain.excelExport.SalaryExcelExport;

import java.util.List;

/**
 * 薪酬确认Service接口
 *
 * @author cleaningcloud
 * @date 2024-11-21
 */
public interface ICldPayConfirmService {
    /**
     * 查询薪酬确认
     *
     * @param payConfirmId 薪酬确认主键
     * @return 薪酬确认
     */
    CldPayConfirm selectCldPayConfirmByPayConfirmId(Long payConfirmId);

    /**
     * 查询薪酬确认列表
     *
     * @param cldPayConfirm 薪酬确认
     * @return 薪酬确认集合
     */
    List<CldPayConfirm> selectCldPayConfirmList(CldPayConfirm cldPayConfirm);


    /**
     * 导出
     *
     * @param salaryExcelExport
     * @return 薪酬管理集合
     */
    List<SalaryExcelExport> selectSalaryExcelExport(SalaryExcelExport salaryExcelExport);


    /**
     * 新增薪酬确认
     *
     * @param cldPayConfirm 薪酬确认
     * @return 结果
     */
    int insertCldPayConfirm(CldPayConfirm cldPayConfirm);

    /**
     * 修改薪酬确认
     *
     * @param cldPayConfirm 薪酬确认
     * @return 结果
     */
    int updateCldPayConfirm(CldPayConfirm cldPayConfirm);

    /**
     * 批量删除薪酬确认
     *
     * @param payConfirmIds 需要删除的薪酬确认主键集合
     * @return 结果
     */
    int deleteCldPayConfirmByPayConfirmIds(Long[] payConfirmIds);

    /**
     * 删除薪酬确认信息
     *
     * @param payConfirmId 薪酬确认主键
     * @return 结果
     */
    int deleteCldPayConfirmByPayConfirmId(Long payConfirmId);

    /**
     * 薪酬发放
     *
     * @param cldPayConfirmDto
     * @return
     */
    int confirmIssuance(CldPayConfirmDto cldPayConfirmDto);
}
